package org.grayrabbit.cms.plugin;

import java.util.Map;

import org.dom4j.Element;

public interface ModuleDescriptor extends Resourced{
	public abstract String getCompleteKey();

	  public abstract String getPluginKey();

	  public abstract String getKey();

	  public abstract String getName();

	  public abstract String getDescription();

	  public abstract Class<?> getModuleClass();

	  public abstract Object getModule();

	  public abstract void init(Plugin paramPlugin, Element paramElement) throws PluginParseException;

	  public abstract boolean isEnabledByDefault();

	  public abstract boolean isSystemModule();

	  public abstract void destroy(Plugin paramPlugin);

	  public abstract Float getMinJavaVersion();

	  public abstract boolean satisfiesMinJavaVersion();

	  public abstract Map<?,?> getParams();

	  public abstract String getI18nNameKey();

	  public abstract String getDescriptionKey();

	  public abstract Plugin getPlugin();
}
